/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.practica.controlador;

import com.practica.entidad.Declarante;
import com.practica.entidad.Parentesco;
import com.practica.entidad.Registrador;
import com.practica.entidad.TipoReg;
import com.practica.modelo.dao.declaranteDAO;
import com.practica.modelo.dao.parentescoDAO;
import com.practica.modelo.dao.registradorDAO;
import com.practica.modelo.dao.tiporegDAO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Usuario23 INSETRA CODIGO  REDIFINIR EMTODO SELECIONAMOS INI Y DESTROY 
 */
public class ServletControlador extends HttpServlet {
    registradorDAO tdao;
    declaranteDAO ddao;
    parentescoDAO pdao;
    tiporegDAO tidao;

    @Override
    public void destroy() {
        tdao.closeEntityManager();
        ddao.closeEntityManager();
        pdao.closeEntityManager();
        tidao.closeEntityManager();
    }

    @Override
    public void init() throws ServletException {
        tdao= new registradorDAO();
        ddao= new declaranteDAO();
        pdao= new parentescoDAO();
        tidao= new tiporegDAO();
    }
    

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        
       String operacion= request.getParameter("operacion");
       
       
       //********************************************************************
       //************** R E G I S T R A D O R 
       //********************************************************************
       
       if(operacion.equalsIgnoreCase("insertar"))
           {
               response.sendRedirect("IngresarRegistrador.jsp");
           }
       
       else if(operacion.equalsIgnoreCase("busqueda"))
           {
               response.sendRedirect("BuscarRegistrador.jsp");
           }
       else if(operacion.equalsIgnoreCase("eliminar"))
           {
               String codigo=request.getParameter("codigo");
               if(tdao.EliminarRegistrador(codigo)){
                    response.sendRedirect("exito.jsp");
                 }
                else
                {
                    response.sendRedirect("error.jsp");
                }
        
           }
        
         if(operacion.equalsIgnoreCase("buscar"))
           {
               
               String codigo=request.getParameter("codigo");
               Registrador r= tdao.buscarRegistrador(codigo);
              
               if(r==null)
                       {
                       response.sendRedirect("found.jsp");    
                           
                       }
               else
               {
               request.setAttribute("reg", r);    
                RequestDispatcher rd= request.getRequestDispatcher("/ver_registrador.jsp");
               rd.forward(request, response);
               }
               
           }
         
       else if(operacion.equalsIgnoreCase("listar"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("regis", tdao.getListaRegistradores());
               RequestDispatcher rd= request.getRequestDispatcher("/lista_registradores.jsp");
               rd.forward(request, response);
         
               
           }
         else  if(operacion.equalsIgnoreCase("listartipor"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("reg", tidao.getListaTipoReg());
               RequestDispatcher rd= request.getRequestDispatcher("/IngresarRegistrador.jsp");
               rd.forward(request, response);
         
               
           }
         
         else if(operacion.equalsIgnoreCase("guardar")){
           
           
           String codigo =request.getParameter("codigo");
           String nombres =request.getParameter("nombres");
           String apellidos =request.getParameter("apellidos");
             String direccion =request.getParameter("direccion");
               String user =request.getParameter("user");
                 String pass =request.getParameter("pass");
                 String tipo = request.getParameter("select");
           Registrador t= new Registrador();
           
          TipoReg p= tidao.buscarTipoReg(tipo);
           
           
           t.setIdRegistrador(codigo);
           t.setApellidos(apellidos);
           t.setNombres(nombres);
           t.setDireccion(direccion);
           t.setUser(user);
           t.setPass(pass);
           t.setIdTipo(p);
           
        
           if(tdao.insertarRegistrador(t)){
               response.sendRedirect("exito.jsp");
           }
           else
           {
               response.sendRedirect("error.jsp");
           }
           
       }

      

 //      DECLARANTEEEEEEEEEEEEEEEE
         
  if(operacion.equalsIgnoreCase("listarDec"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("regis", ddao.getListaDeclarantes());
               RequestDispatcher rd= request.getRequestDispatcher("/lista_Declarante.jsp");
               rd.forward(request, response);
         
               
           }
       if(operacion.equalsIgnoreCase("listarParent"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("regis", pdao.getListaParentesco());
               RequestDispatcher rd= request.getRequestDispatcher("/IngresarDeclarante.jsp");
               rd.forward(request, response);
         
               
           }   
      if(operacion.equalsIgnoreCase("buscarDec"))
           {
               
               String codigo=request.getParameter("codigo");
               Declarante r= ddao.buscarDeclarante(codigo);
              
               if(r==null)
                       {
                       response.sendRedirect("error.jsp");    
                           
                       }
               else
               {
               request.setAttribute("reg", r);    
                RequestDispatcher rd= request.getRequestDispatcher("/ver_Declarante.jsp");
               rd.forward(request, response);
               }
               
           }

      else if(operacion.equalsIgnoreCase("eliminarDec"))
           {
               String codigo=request.getParameter("codigo");
               if(ddao.EliminarDeclarante(codigo)){
                    response.sendRedirect("exito.jsp");
                 }
                else
                {
                    response.sendRedirect("error.jsp");
                }
        
           }
     
       else if(operacion.equalsIgnoreCase("guardarDec")){
           
           
           String codigo =request.getParameter("codigo");
           String nombres =request.getParameter("nombres");
           String apellidos =request.getParameter("apellidos");
           String direccion =request.getParameter("direccion");
           String nacion =request.getParameter("nacion");
           String parent = request.getParameter("select");
           Declarante t= new Declarante();
           
           Parentesco p= pdao.buscarParentesco(parent);
           t.setIdDeclarante(codigo);
           t.setApellidos(apellidos);
           t.setNombre(nombres);
           t.setDomicilio(direccion);
           t.setNacionalidad(nacion);
           t.setIdParentesco(p);
           
           
        
           if(ddao.insertarDeclarante(t)){
               response.sendRedirect("exito.jsp");
           }
           else
           {
               response.sendRedirect("error.jsp");
           }
           
       }
         
         //fin decl
      
      
      
      //      PARENTESCOOOOOOOOO
      
     if(operacion.equalsIgnoreCase("listarParents"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("regis", pdao.getListaParentesco());
               RequestDispatcher rd= request.getRequestDispatcher("/lista_Parentesco.jsp");
               rd.forward(request, response);
         
               
           }
    
      if(operacion.equalsIgnoreCase("buscarParent"))
           {
               
               String codigo=request.getParameter("codigo");
               Parentesco r= pdao.buscarParentesco(codigo);
              
               if(r==null)
                       {
                       response.sendRedirect("found.jsp");    
                           
                       }
               else
               {
               request.setAttribute("reg", r);    
                RequestDispatcher rd= request.getRequestDispatcher("/ver_Parentesco.jsp");
               rd.forward(request, response);
               }
               
           }
      
     
      else if(operacion.equalsIgnoreCase("eliminarParent"))
           {
               String codigo=request.getParameter("codigo");
               if(pdao.EliminarParentesco(codigo).compareToIgnoreCase("1")==0){
                    response.sendRedirect("exito.jsp");
                 }
                else
                {
                    response.sendRedirect("error.jsp");
                }
        
           } 
      
            
     else if(operacion.equalsIgnoreCase("guardarParent")){
           
           
           String codigo =request.getParameter("codigo");
           String descricpion =request.getParameter("descripcion");
    
           Parentesco t= new Parentesco();
           
           
           
           t.setIdparentesco(codigo);
           t.setDescripcion(descricpion);

           
        
           if(pdao.insertarParentesco(t)){
               response.sendRedirect("exito.jsp");
           }
           else
           {
               response.sendRedirect("error.jsp");
           }
           
           }
      
      //****************************************
      
      
      
      
      
      
       //      PARENTESCOOOOOOOOO
      
     if(operacion.equalsIgnoreCase("listarTipo"))//son los nombres del hrefs de los link tiene q se igual
           {
               
               request.setAttribute("regis", tidao.getListaTipoReg());
               RequestDispatcher rd= request.getRequestDispatcher("/lista_TipoReg.jsp");
               rd.forward(request, response);
         
               
           }
    
      if(operacion.equalsIgnoreCase("buscarTipo"))
           {
               
               String codigo=request.getParameter("codigo");
               TipoReg r= tidao.buscarTipoReg(codigo);
              
               if(r==null)
                       {
                       response.sendRedirect("error.jsp");    
                           
                       }
               else
               {
               request.setAttribute("reg", r);    
                RequestDispatcher rd= request.getRequestDispatcher("/ver_TipoReg.jsp");
               rd.forward(request, response);
               }
               
           }
      
     
      else if(operacion.equalsIgnoreCase("eliminarTipo"))
           {
               String codigo=request.getParameter("codigo");
               if(tidao.EliminarTipoReg(codigo).compareToIgnoreCase("1")==0){
                    response.sendRedirect("exito.jsp");
                 }
                else
                {
                    response.sendRedirect("error.jsp");
                }
        
           } 
      
            
     else if(operacion.equalsIgnoreCase("guardarTipo")){
           
           
           String codigo =request.getParameter("codigo");
           String descricpion =request.getParameter("descripcion");
    
           TipoReg t= new TipoReg();
           
           
           
           t.setIdtipoReg(codigo);
           t.setDescripcion(descricpion);

           
        
           if(tidao.insertarTipo(t)){
               response.sendRedirect("exito.jsp");
           }
           else
           {
               response.sendRedirect("error.jsp");
           }
           
           }
      
      //****************************************
    }
            

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
